import os


def osOp():
    # 查询当前相对路径
    print(os.getcwd())
    # 解析路径，只保留文件名部分
    print(os.path.basename("/Users/xxx/xxx.txt"))
    # 组合路径和文件
    print(os.path.join("/Users", "a.txt"))
    # 查询绝对路径
    print(os.path.abspath(r"2-os模块操作文件或目录.py"))
    # 判断目录或文件是否存在(True/False，可采用绝对或相对路径)
    print(os.path.exists("2-os模块操作文件或目录.py"))
    # 用于返回指定路径的目录名称。具体来说，它返回指定路径的最后一个斜杠（或反斜杠）之前的部分，即路径的父目录
    print(os.path.dirname("/User/liupeng/11.txt"))


# 定义递归创建目录函数
def mkdir_file(path):
    # 判断是否为有效路径
    if not os.path.exists(path):
        # 递归调用。会创建出两个元祖数据的形式，一个路径，一个为创建的目录/文件名称
        mkdir_file(os.path.split(path)[0])
    else:
        return
    os.mkdir(path)


# 创建多级目录
def mkdirs():
    os.makedirs("/P1_python_基础/c1_基础/2-文件操作/test/testdir")


# 删除目录
def deleteDir():
    dir = "/P1_python_基础/c1_基础/2-文件操作/test"
    os.makedirs(dir)
    os.rmdir(dir)


# 遍历目录
def iterDir():
    # 遍历当前目录下的2-文件操作目录
    files = os.walk("/P1_python_基础/c1_基础/2-文件操作")
    # 循环 遍历的目录 直接打印 遍历的目录是出不来的
    # for i in files:
    #     print(i)
    for root, dirs, files in files:
        print(root)
        print(dirs)
        print(files)


def removeFile():
    os.remove("222.txt")


if __name__ == '__main__':
    # osOp()
    # mkdir_file("/Users/liupeng/learn/python3.12/python_django/P1_python_基础/c1_基础/2-文件操作/test/testdir")
    iterDir()
